/**
 * @version v1.0
 * @Description
 * @Author admin
 * @date 2021/7/6  15:55
 * @Copyright
 */
public class dome07 {
    public static void main(String[] args) {
        //位运算符 & | ^ ~(取反) <<(左移) >>(右移) >>>(无符号右移)
        System.out.println(6 & 3);

        System.out.println(6 ^ 3 ^3);//一个数异或同一个数两次，还是原来的数

        System.out.println(~6); //-7 负数的二进制，~正数+1=负数二进制  -1=~6+1

        System.out.println(3 << 3);//左移几位数就是该数乘以的几次方 3*3的3次方

        System.out.println(6 >> 2);//右移几位就是该数除以2的几次方

        System.out.println(6 >>> 2);//右移几位就是该数除以2的几次方,对于高位出现的空位，都用0补空位

        //用最高效的方法算出2*8
        //System.out.println(2<<3);

        int a=3;
        int b=6;

        //1.第三方变量
        int c;
        c=a;
        a=b;
        b=c;
//        System.out.println(a);
//        System.out.println(b);

        //使用^运算符
        a = a^b;  //3^6
        b = a^b;  //3^6^6
        a = a^b;  //3^6^3
        System.out.println("a:"+a);
        System.out.println("b:"+b);
    }

}
